/**
 * 字符串的实例方法：
 * replaceAll(searchValue | searchPattern, replacement)
 * 作用：字符串全局替换
 * replace(searchValue | searchPattern, replacement)
 */

// const str = 'China, YYDS'
// 1. 两个参数都是字符串：
// replace ：只会 替换第一个 搜索到的结果
// console.log(str.replace('Y', '红'))// ? China, 红YDS
// replaceAll ：全局替换 
// console.log(str.replaceAll('Y', '红'))// ? China, 红红DS

// const str = 'China, YYDS'
// 2. 第一个参数是正则，第二个是字符串
// console.log(str.replace(/Y/g, '牛'))// ? China, 牛牛DS
// 注意：replaceAll第一个参数是正则的时候，
// replaceAll的正则，必须添加g修饰符（全局匹配），否则会报错
// console.log(str.replaceAll(/Y/g, '牛'))// ? China, 牛牛DS

// 3. 第一个参数是正则，第二个参数是回调函数
// 目的：传回调函数，可以对匹配到的结果 做 进一步处理，
// 并且回调函数return 什么，就会用return结果替换 符合正则规则的字符串，
// 最终replaceAll()方法的返回值就是替换后的结果
// 回调函数参数：
// 第一个：符合正则规则的字符串
// 第二个：在原字符中的下标（位置）
// 第三个：原字符串本身

const str = 'China, YYDS'
const ret = str.replaceAll(/Y/g, function (matchStr, index, str) {
  // console.log(matchStr, index, str)// 'Y' 7 'China, YYDS'
  // console.log(matchStr, index, str)// 'Y' 8 'China, YYDS'
  return '🐂🐂'
})

console.log(ret) // ? 'China，🐂🐂🐂🐂DS'



